use ffi;
use gio;
use glib;
+use glib::translate::*;
use glib::Error;
use glib::IsA;
-use glib::translate::*;
use glib_ffi;
-use std::collections::{HashSet, HashMap};
-use std::ptr;
+use std::collections::{HashMap, HashSet};
use std::path::Path;
+use std::ptr;
use ObjectName;
-unsafe extern "C" fn read_variant_table(_key: glib_ffi::gpointer, value: glib_ffi::gpointer, hash_set: glib_ffi::gpointer) {
+unsafe extern "C" fn read_variant_table(
+ _key: glib_ffi::gpointer,
+ value: glib_ffi::gpointer,
+ hash_set: glib_ffi::gpointer,
+) {
let value: glib::Variant = from_glib_none(value as *const glib_ffi::GVariant);
let set: &mut HashSet<ObjectName> = &mut *(hash_set as *mut HashSet<ObjectName>);
set.insert(ObjectName::new_from_variant(value));
}
-
unsafe fn from_glib_container_variant_set(ptr: *mut glib_ffi::GHashTable) -> HashSet<ObjectName> {
let mut set = HashSet::new();
- glib_ffi::g_hash_table_foreach(ptr, Some(read_variant_table), &mut set as *mut HashSet<ObjectName> as *mut _);
+ glib_ffi::g_hash_table_foreach(
+ ptr,
+ Some(read_variant_table),
+ &mut set as *mut HashSet<ObjectName> as *mut _,
+ );
glib_ffi::g_hash_table_unref(ptr);
set
}
-
pub trait RepoExtManual {
fn new_for_path<P: AsRef<Path>>(path: P) -> Repo;
&self,
commit_checksum: &str,
maxdepth: i32,
- cancellable: P
+ cancellable: P,
) -> Result<HashSet<ObjectName>, Error>;
/// If `refspec_prefix` is `None`, list all local and remote refspecs,
fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
&self,
refspec_prefix: P,
- cancellable: Q
+ cancellable: Q,
) -> Result<HashMap<String, String>, Error>;
/// If `refspec_prefix` is `None`, list all local and remote refspecs,
&self,
refspec_prefix: P,
flags: RepoListRefsExtFlags,
- cancellable: Q
+ cancellable: Q,
) -> Result<HashMap<String, String>, Error>;
}
fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
&self,
refspec_prefix: P,
- cancellable: Q
+ cancellable: Q,
) -> Result<HashMap<String, String>, Error> {
unsafe {
let mut error = ptr::null_mut();
&self,
refspec_prefix: P,
flags: RepoListRefsExtFlags,
- cancellable: Q
+ cancellable: Q,
) -> Result<HashMap<String, String>, Error> {
unsafe {
let mut error = ptr::null_mut();
extern crate libostree;
extern crate tempfile;
+use glib::prelude::*;
+use libostree::prelude::*;
use std::fs;
use std::io;
use std::io::Write;
-use glib::prelude::*;
-use libostree::prelude::*;
-
-
fn create_repo(repodir: &tempfile::TempDir) -> Result<libostree::Repo, glib::Error> {
let repo = libostree::Repo::new_for_path(repodir.path());
Ok(())
}
-fn create_mtree(treedir: &tempfile::TempDir, repo: &libostree::Repo) -> Result<libostree::MutableTree, glib::Error> {
+fn create_mtree(
+ treedir: &tempfile::TempDir,
+ repo: &libostree::Repo,
+) -> Result<libostree::MutableTree, glib::Error> {
let gfile = gio::File::new_for_path(treedir.path());
let mtree = libostree::MutableTree::new();
repo.write_directory_to_mtree(&gfile, &mtree, None, None)?;
Ok(mtree)
}
-fn commit_mtree(repo: &libostree::Repo, mtree: &libostree::MutableTree) -> Result<String, glib::Error> {
+fn commit_mtree(
+ repo: &libostree::Repo,
+ mtree: &libostree::MutableTree,
+) -> Result<String, glib::Error> {
repo.prepare_transaction(None)?;
let repo_file = repo.write_mtree(mtree, None)?.downcast().unwrap();
let checksum = repo.write_commit(None, "Test Commit", None, None, &repo_file, None)?;
let checksum = commit_mtree(&repo, &mtree).expect("failed to commit mtree");
let repo = open_repo(&repodir).expect("failed to open repo");
- let refs = repo.list_refs(None, None)
- .expect("failed to list refs");
+ let refs = repo.list_refs(None, None).expect("failed to list refs");
assert_eq!(refs.len(), 1);
assert_eq!(refs["test"], checksum);
}